/**
 * Created by PanJiaChen on 16/11/18.
 */

/**
 * @param {string} path
 * @returns {Boolean}
 */
export function isExternal(path) {
  return /^(https?:|mailto:|tel:)/.test(path)
}

/**
 * @param {string} str
 * @returns {Boolean}
 */
export function validUsername(str) {
  const valid_map = ['admin', 'editor', 'ucadmin', 'sysman']
  return valid_map.indexOf(str.trim()) >= 0
}

/**
 * @param {string} str
 * @returns {Boolean}
 */
export function validMobile(str) {
  return /^1(3|4|5|6|7|8|9)\d{9}$/.test(str)
}

/**
 * 校验座机号
 * @param {string} str
 * @returns {Boolean}
 */
export function validLandlineTelephone(str) {
  return /^\d{3,4}-\d{4,8}$/.test(str)
}

/**
 * 验证税率是否正确
 * @param {string} str
 * @returns {Boolean}
 */
export function validTaxRate(str) {
  return /^0\.((?=0)(0[1-9])|([1-9]\d))$/.test(str)
}
/**
 * 邮箱验证
 * @param {Object} str
 */
export function validEmail(str) {
  return /^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,5}$/.test(str)
}
/**
 * 验证 统一社会信用代码
 * @param {Object} str
 */
export function validTaxCode(str) {
  return /^[A-Z0-9]{15}$|^[A-Z0-9]{17}$|^[A-Z0-9]{18}$|^[A-Z0-9]{20}$/.test(str)
}

/**
 * 验证登录密码强度
 * "8位以上16位以下，同时包含大写字母、小写字母、数字、特殊字符的高强度密码"
 * @param {object} str
 */
export function validPasswordStrength(str) {
  return /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*_-]).{8,16}$$/.test(str)
}
